1. Field of the Invention
The present invention generally relates to data encryption and, more particularly, to methods and apparatus for reducing latency associated with decrypting previously encrypted data.
2. Description of the Related Art
A system on a chip (SOC) generally includes one or more integrated processor cores, some type of embedded memory, such as a cache shared between the processors cores, and peripheral interfaces, such as memory control components and external bus interfaces, on a single chip to form a complete (or nearly complete) system. The use of cache memory hierarchies is well established to improve a processor performance by reducing and/or eliminating read access requests to external main memory. As used herein, the term latency generally refers to the amount of time it takes before data is available at a processor core after a request from memory control for data that is not currently available in a nearby (L1 or L2) cache memory.
As part of an enhanced security feature, some SOCs encrypt some portions of data prior to storing it in external memory, for example, to prevent a hacker from obtaining instructions of a copyrighted program, such as a video game, or data that may be used to determine such instructions through reverse engineering. Such encrypted data must first be decrypted before it can be used by the processor in any computation. Therefore, an additional latency is introduced due to the need to decrypt data that was stored in external memory in an encrypted format.
This latency may add significant delay to the execution to be performed on the decrypted data. In addition, this latency may prevent the transfer of subsequent unencrypted data, which can further impact system performance. Accordingly, what is needed is a mechanism to minimize latency impacts of data that is to be decrypted.